CREATE TABLE KopiaLokalizacji
(
    IdentyfikatorLokalizacji integer NOT NULL,
    Street vargraphic(100),
    Miasto vargraphic (75),
    Wojewodztwo vargraphic(75)
);

INSERT INTO KopiaLokalizacji SELECT * FROM Lokalizacje;

DROP TABLE Lokalizacje;

CREATE TABLE Lokalizacje
(
    IdentyfikatorLokalizacji integer NOT NULL,
    Street vargraphic(100),
    Miasto vargraphic (75),
    Wojewodztwo vargraphic(75)
);

INSERT INTO Lokalizacje SELECT * FROM KopiaLokalizacji;

DROP TABLE KopiaLokalizacji;


CREATE TABLE KopiaFrekwencji
(
    DataSpotkania date,
    IdentyfikatorLokalizacji integer,
    IdentyfikatorCzlonka integer
);

INSERT INTO KopiaFrekwencji (DataSpotkania, IdentyfikatorLokalizacji, IdentyfikatorCzlonka)
SELECT DataSpotkania, IdentyfikatorLokalizacji, IdentyfikatorCzlonka FROM Frekwencja
WHERE UczestnictwoCzlonka = 'T';

DROP TABLE Frekwencja;

CREATE TABLE Frekwencja
(
    DataSpotkania date,
    IdentyfikatorLokalizacji integer,
    IdentyfikatorCzlonka integer
);

INSERT INTO Frekwencja (DataSpotkania, IdentyfikatorLokalizacji, IdentyfikatorCzlonka)
SELECT DataSpotkania, IdentyfikatorLokalizacji, IdentyfikatorCzlonka FROM KopiaFrekwencji;

DROP TABLE KopiaFrekwencji;


CREATE TABLE KopiaSzczegolowychDanychCzlonkow
(
    IdentyfikatorCzlonka integer,
    Imie vargraphic(50),
    Nazwisko vargraphic(50),
    DataUrodzenia date,
    Ulica vargraphic(100),
    Miasto vargraphic(75),
    Wojewodztwo vargraphic(75),
    KodPocztowy varchar(6),
    Email varchar(200),
    DataPrzystapienia date
);

INSERT INTO KopiaSzczegolowychDanychCzlonkow
SELECT * FROM SzczegoloweDaneCzlonkow;

DROP TABLE SzczegoloweDaneCzlonkow;

CREATE TABLE SzczegoloweDaneCzlonkow
(
    IdentyfikatorCzlonka integer NOT NULL,
    Imie vargraphic(50),
    Nazwisko vargraphic(50),
    DataUrodzenia date,
    Ulica vargraphic(100),
    Miasto vargraphic(75),
    Wojewodztwo vargraphic(75),
    KodPocztowy varchar(6),
    Email varchar(200),
    DataPrzystapienia date
);

INSERT INTO SzczegoloweDaneCzlonkow
SELECT * FROM KopiaSzczegolowychDanychCzlonkow;

DROP TABLE KopiaSzczegolowychDanychCzlonkow;


ALTER TABLE SzczegoloweDaneCzlonkow
ADD CONSTRAINT szczegolowedaneczlonkow_kg PRIMARY KEY (IdentyfikatorCzlonka);


CREATE TABLE KopiaFilmow
(
    IdentyfikatorFilmu integer,
    TytulFilmu vargraphic(100),
    RokPremiery integer,
    StreszczenieFabuly vargraphic(2000),
    DostepnyNaDVD char(1),
    Ocena integer,
    IdentyfikatorKategorii integer
);

INSERT INTO KopiaFilmow
SELECT * FROM Filmy;

DROP TABLE Filmy;

CREATE TABLE Filmy
(
    IdentyfikatorFilmu integer NOT NULL,
    TytulFilmu vargraphic(100),
    RokPremiery integer,
    StreszczenieFabuly vargraphic(2000),
    DostepnyNaDVD char(1),
    Ocena integer,
    IdentyfikatorKategorii integer
);

INSERT INTO Filmy
SELECT * FROM KopiaFilmow;

DROP TABLE KopiaFilmow;


UPDATE Filmy
SET IdentyfikatorFilmu = 13
WHERE IdentyfikatorFilmu = 12 AND
TytulFilmu = 'Dobry, zy i czowiek ze zmienion twarz';

UPDATE Filmy
SET IdentyfikatorFilmu = 14
WHERE IdentyfikatorFilmu = 2 AND
TytulFilmu = 'Wczesne popoudnie';

UPDATE Filmy
SET IdentyfikatorFilmu = 15
WHERE IdentyfikatorFilmu = 2 AND
TytulFilmu = 'Fasolowa ';

ALTER TABLE Filmy
ADD CONSTRAINT filmy_kg PRIMARY KEY (IdentyfikatorFilmu);


CREATE TABLE KopiaKategoriiFilmow
(
    IdentyfikatorKategorii integer,
    Kategoria vargraphic(100)
);

INSERT INTO KopiaKategoriiFilmow
SELECT * FROM KategorieFilmow;

DROP TABLE KategorieFilmow;

CREATE TABLE KategorieFilmow
(
    IdentyfikatorKategorii integer NOT NULL,
    Kategoria vargraphic(100)
);

INSERT INTO KategorieFilmow
SELECT * FROM KopiaKategoriiFilmow;

DROP TABLE KopiaKategoriiFilmow;


ALTER TABLE KategorieFilmow
ADD CONSTRAINT kategoriefilmow_kg PRIMARY KEY (IdentyfikatorKategorii);


CREATE TABLE KopiaUlubionychKategorii
(
    IdentyfikatorKategorii integer,
    IdentyfikatorCzlonka integer
);

INSERT INTO KopiaUlubionychKategorii
SELECT * FROM UlubioneKategorie;

DROP TABLE UlubioneKategorie;

CREATE TABLE UlubioneKategorie
(
    IdentyfikatorKategorii integer NOT NULL,
    IdentyfikatorCzlonka integer NOT NULL
);

INSERT INTO UlubioneKategorie
SELECT * FROM KopiaUlubionychKategorii;

DROP TABLE KopiaUlubionychKategorii;


ALTER TABLE UlubioneKategorie
ADD CONSTRAINT ulubionekategorie_kg PRIMARY KEY (IdentyfikatorKategorii, IdentyfikatorCzlonka);


CREATE TABLE KopiaFilmow
(
    IdentyfikatorFilmu integer NOT NULL,
    TytulFilmu vargraphic(100),
    RokPremiery integer,
    StreszczenieFabuly vargraphic(2000),
    DostepnyNaDVD char(1),
    Ocena integer,
    IdentyfikatorKategorii integer
);

INSERT INTO KopiaFilmow
SELECT * FROM Filmy;

DROP TABLE Filmy;

CREATE TABLE Filmy
(
    IdentyfikatorFilmu integer NOT NULL,
    TytulFilmu vargraphic(100) NOT NULL,
    RokPremiery integer,
    StreszczenieFabuly vargraphic(2000),
    DostepnyNaDVD char(1),
    Ocena integer,
    IdentyfikatorKategorii integer
);

INSERT INTO Filmy
SELECT * FROM KopiaFilmow;

DROP TABLE KopiaFilmow;



CREATE TABLE KopiaSzczegolowychDanychCzlonkow
(
    IdentyfikatorCzlonka integer NOT NULL,
    Imie vargraphic(50),
    Nazwisko vargraphic(50),
    DataUrodzenia date,
    Ulica vargraphic(100),
    Miasto vargraphic(75),
    Wojewodztwo vargraphic(75),
    KodPocztowy varchar(6),
    Email varchar(200),
    DataPrzystapienia date
);

INSERT INTO KopiaSzczegolowychDanychCzlonkow
SELECT * FROM SzczegoloweDaneCzlonkow;

DROP TABLE SzczegoloweDaneCzlonkow;

CREATE TABLE SzczegoloweDaneCzlonkow
(
    IdentyfikatorCzlonka integer NOT NULL,
    Imie vargraphic(50) NOT NULL,
    Nazwisko vargraphic(50) NOT NULL,
    DataUrodzenia date,
    Ulica vargraphic(100),
    Miasto vargraphic(75),
    Wojewodztwo vargraphic(75),
    KodPocztowy varchar(6),
    Email varchar(200),
    DataPrzystapienia date
);

INSERT INTO SzczegoloweDaneCzlonkow
SELECT * FROM KopiaSzczegolowychDanychCzlonkow;

DROP TABLE KopiaSzczegolowychDanychCzlonkow;


CREATE UNIQUE INDEX indeks_nazwisk_czlonkow
ON SzczegoloweDaneCzlonkow (Nazwisko DESC, Imie);



ALTER TABLE Frekwencja
ADD CONSTRAINT ko_frek_lok
FOREIGN KEY (IdentyfikatorLokalizacji)
REFERENCES Lokalizacje(IdentyfikatorLokalizacji);


ALTER TABLE Frekwencja
ADD CONSTRAINT ko_frek_czl
FOREIGN KEY (IdentyfikatorCzlonka)
REFERENCES SzczegoloweDaneCzlonka(IdentyfikatorCzlonka);



